home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / game / think / Overdose_src.lha / overdose / journo.txt < prev    next >
Text File  |  1996-09-21  |  16KB  |  342 lines

  1. JOURNAAL OVERDOSE
  2. 3-1-96
  3.  
  4. Veranderen van map gaat nu anders (en goed):
  5.   eerst worden de vier cells rond de speler met scanbomb{} gechecked op
  6.   bommen. als er een bom is dan wordt met explode{} de cell op #EXPLODED 
  7.   gezet.
  8.   hierna worden de vier cells veranderd met changecell{} (behalve als
  9.   deze cell #EXPLODED is natuurlijk, maar dat wordt in changecell{}
  10.   afgehandeld)
  11.         
  12.  
  13. Nu zijn er ook animaties: het verschijnen en verdwijnen van blocks en
  14. explosies:
  15.   bij changecell{} en loadmap en andere routines die de map veranderen wordt
  16.   een waarde in de cmap() geschreven. showsmap ziet dit en blit de shape
  17.   canim(cmap(x,y)) en verhoogd cmap(x,y) totdat een bep. waarde bereikt is,
  18.   hierna wordt cmap(x,y) weer op 0 gezet.
  19.   Waarden voor cmap (zijn canim indexen!!!)
  20.     0       = niks veranderen
  21.     1..18   = block disappear (shapes 9->16 en 0 (=#EMPTY!))
  22.     19..36  = block 1 appear (shapes 16->9 en 1 )
  23.     37..54  = block 2 appear (shapes 16->9 en 2 )
  24.     55..72  = block 3 appear (shapes 16->9 en 3 )
  25.     73..90  = bomb appear (shapes 16->9 en 4 )
  26.     91..124 = explosion (shapes 17->32 en 0 )
  27.   In de canim() array staan alle shapes 2x omdat we double bufferen (en we
  28.   dus elke shape 2x moeten blitten (nou ja, moeten: het zorgt voor een goede
  29.   animatie snelheid [laatste shape moet wel altijd 2x geblit worden, want die
  30.   verandert een hele zooi frames niet, en anders gaat het staan flikkeren])
  31.  
  32. Time: de balk is 92x11 pixels. Level\time wordt in secondes op gegeven. Er
  33. gaan 50 frames in een seconde. Dus het aantal frames per pixel is:
  34.  level\time*50/92 = level\time / 2 (ongeveer)
  35. We gebruiken nu 2 counters: fcount en tcount. fcount wordt elke frame verhoogd
  36. . als fcount > level\time/2 dan wordt tcount met 1 verhoogd en een nieuw stuk
  37. time balk getekend. als tcount>92 dan balk is vol en wordt de flag outoftime
  38. gezet. 
  39. Het tekenen van de balk gaat met een speciale teller, die elke frame met 1
  40. wordt verlaagd. de teller start op 2, en stopt op 0, dus we doen het totaal
  41. dus 2x (vanwege double bufferen!!!)
  42.  
  43. Scoring:
  44.   aantal pixels over   = 92-level\tcount
  45.   voor elke pixel over krijg je 10 bonus punten...(dus niet voor elke sec.!!)
  46.   voor elke move onder par krijgt je 100 punten en voor elke move boven
  47.   par gaan er 100 punten vanaf... (OHOH, ik heb helemaal geen MIN teken shape,
  48.   zal ik maar doen dat 0 punten het minimum is !? klinkt wel fijn...)
  49.         
  50. Comparemaps{} vergelijkt de source met de destination map, als er een verschil is,
  51. dan is het level nog niet complete. Ook als de changesmap <> 0 is, (er is dan nog
  52. een animatie aan de gang: s&d maps kunnen al wel gelijk aan elkaar zijn) gebeurt dit.
  53. Bommen worden door comparemaps{} gewoon genegeerd.
  54.   
  55. 4.1.96
  56. Intro, pause en cd player maken gebruik van dezelfde achtergrond (bitmap 3),
  57. maar ze hebben verschillende palettes. Cd player gebruikt bitmap 4 en 5 als
  58. scratch bitmaps (omdat tijdens het spelen bitmap 0 en 1 ook al gebruikt worden,
  59. Intro en pause gebruiken ook 4 en 5 (om het overzichtelijk te houden) en
  60. gebruiken 6 en 7 als dummy bitmaps (met bitplanesbitmap)
  61.  
  62. 5.1.96
  63. Als uit main loop ge#EXIT wordt, dan gaat program flow naar gameover. Deze
  64. kijkt mbv. checkhiscore{} of er een hiscore is (-1=niet, 0..#NUM_NAMES-1 is wel)
  65. Bij wel een hiscore wordt er een text op het scherm gezet en wordt er naar
  66. dohiscores gesprongen. Bij geen hiscore gaan we gelijk terug naar het intro.
  67. Als uit main loop ge#FINISHED wordt en alle levels zijn al bereikt dan geldt
  68. iets dergelijks: de routine welldone kijkt ook of er een hiscore is en gaat
  69. dan naar dohiscores. Bij geen hiscore krijgt speler een jammer-dan tekst op
  70. het scherm en na muisclick gaat hij terug naar intro.
  71. Dohiscores zet een naam invul scherm neer waar met de muis een naam in kan
  72. worden gegeven (A..Z, backspace en enter (geen spatie :)). Na enter worden
  73. alle 3 de hiscore lijsten gesaved (1 voor elk diff.level) als Overdose.Scores
  74. en gaat program flow terug naar intro.
  75.  
  76. Bij Init van programma wordt hiscore lijst ingeladen, en als dit mislukt,
  77. dan wordt er een lege aangemaakt.
  78.  
  79. Nog wel een showhiscores{dlevel} proc maken voor intro...
  80.  
  81. Hmm, even over de samples:
  82.   button clicken (klikkend geluid)
  83.   in source map clicken (schuivend geluid)
  84.   explosie 
  85.   tijd balk vollopen (kort sampeltje, hele tijd achter elkaar doorspelen)
  86.   
  87.  
  88. 6.1.96
  89. de cd player: er zijn 2 shapes: 1= het menu, 2=de cursor
  90. display geeft 3 versch. toestanden aan: NO DISC, TOTAL TRACKS xx en
  91. TRACK xx OF yy. De ? button is een random play, maar speelt steeds maar
  92. 1 track achter elkaar (pretty lame). Play speelt tot einde cd, >| en |< skippen
  93. naar volgende/vorige track en beginnen gelijk te spelen.
  94.  
  95. Alles is nu geincbinned: ook de levels... Levels maken: met text editor file
  96. aanmaken en in levels/ saven als een getal (1,2,3,4,5....) en dan het proggel
  97. makebinlevels runnen, deze maakt een levelfile aan die door od kan worden
  98. geincluut...
  99.  
  100.  
  101. 8.1.96
  102. intro: bitmap 4 en 5 worden gebruikt door de text
  103.        bitmap 6 en 7 door de OVERDOSE titel (dit zijn dummy bitplanes, die
  104.        alleen bestaan uit bitplane 5, door hierin de titelletters te blitten
  105.        wordt het schaduw effect verkregen (bij een juist opgebouwd palette:
  106.        de 1e 16 kleuren kunnen gewoon worden gebruikt, de laatste 16 zijn
  107.        schaduwtinten van deze kleuren.)
  108. De titel gebruikt buffers 4 en 5, de text gebruikt buffers 6 en 7 (deze 2 zijn
  109. vrij grote buffers, omdat er veel letters tegelijkertijd op het scherm kunnen)
  110. In de hoofd-introlus wordt een teller elke 25 frames ofzo opgehoogd, deze
  111. icount wordt gebruikt om de text op het scherm te zetten. Steeds als icount=xx
  112. en framecounter<2 dan wordt er een regel text geblit. framecounter<2 omdat
  113. we op bitmap 4 en 5 moeten blitten, maar ook niet meer dan 2x totaal omdat
  114. anders de buffer overflowed.
  115. Als het scherm weer leeg moet kan dat met If icount=xx then unbuffer yy.
  116. De blittext{} routine is aangepast, er moet nu een extra parameter mee
  117. worden gegeven: buf. Als deze -1 is, dan wordt er gewoon geblit (zonder buffer)
  118. en anders bblitten met buffer buf.
  119.  
  120.  
  121. 9.1.96
  122. intro zit nu aan spel vast. grootte van overdspau letters is nu 40x40 omdat
  123. dat wat snelheid oplevert, en dat is wel nodig voor unbufferen van de text.
  124.  
  125. spel wil niet op a500 werken; tenminste niet goed.. decoden wil niet echt;
  126. m'n in-game bitmap komt er nogal verneukt uit, hmmm niet zo leuk. de helft
  127. van de tijd start het niet eens op (odd-address guru..joepie), hmmm toch 
  128. maar A1200 ONLY maken of niet ??
  129.  
  130. decrunch-windowtje is weer weg, je ziet het amper op een a1200 ...
  131.  
  132. dohiscores is wat verkleind: het invoeren van de naam gaat nu mbv de functie
  133. getname{maxchars,firstx}, welke een string teruggeeft van maximaal maxchars
  134. tekens groot. het 1e teken wordt op x positie firstx geblit, dit zodat
  135. invoer van verschillende max.lengten altijd gecentreerd staat.
  136. nu kunnen options deze zelfde routine gebruiken om een levelcode in
  137. te voeren. (van max. 8 tekens, ipv. 15 voor een hiscore...)
  138.  
  139. options: start pretty tough, brain damage, extremely insane, password, quit
  140. een verkeerd password invoeren = gewoon bij 1e level van pt beginnen!
  141.  
  142.  
  143. 11.1.96
  144. intro tune zit erin geinc'd. 
  145. thanx to rene voor hall of shame
  146.  
  147. intro is en wordt heel anders want std a1200 is er te traag voor.....
  148. nog wat probleempjes: om spel te draaien vanaf disk is ram:env nodig, en
  149. dus ook makedir (en assign) commando's.
  150. na quitten geeft bb2 een guru ($80000003) te weinig geheugen ofzo??? 
  151. spel draait nog steeds niet op a500 (ook niet vanaf opstartdisk...
  152. hd maar loskoppelen denk)
  153.  
  154. docs: cdspeler heeft nog wel filesystem nodig: of od naar hd copieeren, of
  155.       filesystem naar opstartdisk copieeren... voorbeeld geven voor
  156.       overdrive...
  157.  
  158. 19.1.96
  159. diskfont.lib en mathtrans.lib zijn nodig...balen, nou ja mathtrans werkt
  160. ik wel weg door een quick sintab te maken mbv. een geinclude sinustabel.
  161. diskfont ...hmmm
  162. nog iets: ram:env moet ook aanwezig zijn (zucht)
  163. GAAF ram:env hoeft helemaal NIET!!!!! dan alleen nog afhankelijk van 
  164. diskfont.library en cd filesystem (wordt hd only met textfile: hoe doe ik
  165. dit op disk???)
  166.  
  167. 20.1.96
  168. hokey, we gaan het intro op de volgende manier doen:
  169. steeds na bep. aantal frames verschijnt er een ander scherm
  170. 1- overdose letters die wiebelen: op scherm staat (C)1996 FF, CREATED BY MH
  171. 2- pretty tough hall of shame, overdose letters zijn weg, text staat er in 1
  172.    keer (gewoon blitten op 1 bitmap, ook niet double bufferen, alleen by 1)
  173. 3- brain damage hos
  174. 4- extremely insane hos
  175. 5- shareware
  176. en dan weer opnieuw
  177.  
  178. blittext{} is weer zonder buf parameter: is niet meer nodig...
  179. icount is ook weg uit intro: we tellen gewoon het aantal frames...
  180.  
  181. nu zijn er ook een aantal buffers overbodig: ik denk 0 en 1...
  182. grappig: diskfont.library is ook niet nodig als ik alle nprint's weghaal:
  183. simpel: gewoon vervangen door blittext{} (de enige nprint die nodig is, zit
  184. in intro...)
  185.  
  186. sintab(), xtab() en ytab() worden nu gemaakt door sintab.bin, xtab.bin en
  187. ytab.bin te includen en de woorden 1 voor 1 in de arrays te zetten.
  188. het proggel makedancetabs maakt deze .bin files.
  189.  
  190. SHIT SHIT SHIT SHIT SHIT: zelfs zonder nprint is diskfont.library toch nodig
  191. ...ik gebruik helemaal geen font (of toch wel????)
  192. hmmm, verder helemaal geen files nodig (behalve overdose.scores dan)
  193. intro tune is dynamite geworden want beautiful klonk te depri...
  194.  
  195. a500 werkt niet: net na het laden gaat het mis (grijs scherm en dan: reset)
  196.  
  197. docs: game disk mag niet gewriteprotect worden en moet in de drive zitten
  198. bij saven hiscores (geldt natuurlijk niet voor harddisk), er wordt niet op
  199. gechecked en als er iets fout gaat dan heb je pech...
  200.  
  201. goed: ik weet nu waarom het niet op A500 werkt: het inladen en saven van
  202. de hall of fames, en wel het alloccen en free'en van het geheugen gaat niet
  203. goed...
  204. het guru'en bij quit komt doordat end het geheugen niet kan free'en, dus
  205. op een of andere manier dat zelf maar doen denk ik...
  206.  
  207. a500 werkt nu: met goed gamescreen (oude suckte...file niet helemaal ok denk
  208. ik) het werkt denk zelfs op 512k a500!
  209.  
  210.  
  211. 22.1.96
  212. halloffame laden is nu met bank (0), saven gebruikt zelfde bank. Bank wordt
  213. bij laden aangemaakt en weergefree'd, zoook bij saven (omdat laden niet perse
  214. hoeft te gebeuren (file kwijt) en dan zou er geen bank zijn voor saven en
  215. wordt alles random in het geheugen gepoked...)
  216. saven: als scoresfile niet bestaat wordt er een nieuwe aangemaakt
  217. laden: als scoresfile niet bestaat worden er NOBODY 0 scores gemaakt (geen
  218. nieuwe file, dat doet saven!)
  219. saven + writeprotect werkt nog niet wow (helemaal niet vanuit Blitz mode:)
  220. gewoon jammer dan, moet user maar niet zo stom doen!
  221.  
  222. 24.1.96
  223. AAAAAAARRGGGHHH! Ik word helemaal gek van dit stomme kut spel, hiscores
  224. laden en saven wil gewoon niet werken op a500!!! 
  225.  
  226. 26.1.96
  227. hokay, aanpassen die handel: er is maar 1 hiscore lijst: of ik laden en saven
  228. doe zie ik nog wel. Er zijn geen verschillende difficulty levels meer.
  229. Na intro krijg je geen options maar password invulscherm met mededeling dat
  230. je 1e level kan starten door op end te klikken.
  231. #NUMDLEVELS, numlevels() en firstlevel() zijn dus weg. Hiscore arrays
  232. zijn nu 1 dimensionaal en hiscore file is 3x zo kort. dlevel is ook weg.
  233. Nu wel nieuwe constante #NUMLEVELS!
  234. Quit is ook weg.
  235. cheatmode: intro:rmb=quit, game:joy-up=next level, joy-down=game complete
  236.  \__activeren: intro:joyuprightfire.
  237.  
  238. docs: OS3.1 heeft al ingebouwde cd-support (OS moet wel opgestart zijn!)
  239.  
  240. hehe, gevonden: hiscores laden/saven ging fout omdat #maxchars 15 was, en
  241. dit is oneven: omdat 68020 dit wel aankan en 68000 niet werkte het niet
  242. op 500: #maxchars is nu 16! Uhhm, hifile$ is nu soort constante voor
  243. "Overdose.Scores" filenaam...
  244.  
  245. Distribution gaan we zo doen: dms file MET diskfont.library en geinstallde
  246. disk (gewoon bootabledisk dms'sen dus)+docs. En document file voor installeren
  247. van cd-filesystem (Overdrive en OS3.1 voorbeelden...)
  248.  
  249. 27.1.96
  250. levels beginnen dus bij 1 en gaan tot #NUMLEVELS (niet van 0 tot #NL-1!!!)
  251. levels editten: password MOET 8 tekens lang zijn EN GEEN /spaties/, nergens!
  252.  
  253. OOPS: password moet wel worden weergegeven na level complete (+ wachten op
  254.       fire) gefixed
  255.  
  256. intro: speelt med mod alleen als sfx aanstaat, want anders speelt ie door
  257. cd heen, nu moet user het zelf weten. die zet toch sfx uit als cd aanstaat!
  258.  
  259. hmmm, dit is beter: intro mod speelt alleen als cd speler niet speelt! (via
  260. CDSTATUS&32==32!)
  261.  
  262. fuck cd filesystem installation: zoeken ze zelf maar uit!
  263.  
  264.  
  265. 10.2.96
  266. leveleditor gemaakt + docs hiervoor. werkt allemaal wat beter (makkelijker)
  267. jaja, quitten werkt nu opeens wel...wow....intro dus wat veranderd (esc=quit
  268. erbij)
  269.  
  270. bugje geremoved: na laatste level wordt nu GEEN password meer weergegeven
  271. (logisch natuurlijk)
  272.  
  273. 12.2.96
  274. het quitprobleem blijkt opgelost te zijn: een byte (0) toevoegen aan de
  275. version string maakte het verschil tussen guru'en en normaal terugkeren...
  276. waarschijnlijk kwam het niet helemaal EVEN uit (klopt ook wel, want de
  277. guru was 80000003 = odd address....weird, maar ja, het werkt!)
  278. Uiteindelijk op de laatste regel van het programma maar een EVEN neergezet...
  279.  
  280. nog iets: het blijkt niet echt onder 1.3 te werken...even uitzoeken waarom
  281. ook testen of het wel met 512k chip only (of met 512k chip/fast werkt...)
  282. [1mb chip+0 fast werkt wel...]
  283.  
  284. 17.2.96
  285. nog een probleem opgelost: met showrequesters 0 zijn requesters automatisch
  286. cancellen, dus nu maakt het niet uit of disk writeprotect is of niet in de
  287. drive zit!!!!! joepie...docs ook maar even aangepast...
  288.  
  289.  
  290. 27.4.96
  291. Milco Veljanoski maakt levels voor mij. Paul en Nol ook (zeggen ze...).
  292.  
  293. Milco bracht mij op een aantal aardige ideetjes:
  294.  
  295. * Scoring moet anders, je moet par halen om naar het volgende level te kunnen.
  296.   Voor het aantal moves onder par krijg je punten.
  297.   Geen minpunten meer.
  298.   Bonuspunten voor de tijd.
  299.   
  300. * Gewoon op een intuition-scherm, dus met multitasking. Dan kan de
  301.   CD-speler weg, die suckt toch... CD-speler button wordt dan een button
  302.   waarmee je het scherm weg kan klikken. Pause-button zorgt er dan gewoon
  303.   voor dat je niet meer kan zien wat erin de windows staat...
  304.  
  305. * Alle meldingen (pause, levelfinished (=levelcode), levelfinished maar te
  306.   grote par, etc.) in window dat even groot is als max. speelveld (speciale
  307.   routine voor maken....) 
  308.  
  309. * Ander intro (op zijn minst ander palette, misschien wel die van het nu
  310.   overbodig geworden Pause scherm). 
  311.  
  312. * Docs herschrijven, lijkt me nogal logisch....
  313.  
  314. Oh ja, het werkte op zijn 68060! (behalve de cheatmode blijkbaar).
  315.  
  316.  
  317. 30.4.96 (Koninginnedag)
  318. Scoring is aangepast. Pause is aangepast. Geen multitasking, maar een
  319. iconify-button, waarmee het spel stopt en je terug gaat naar de workbench.
  320. Dmv. op een button in een requester te clicken keer je terug naar het spel.
  321. (Deze iconify-button zit in de plaats van de CD-speler).
  322.  
  323. Er zijn 3 sampletjes bijgekomen: een applaus als je het level finished, een
  324. superapplaus als je het spel beindigd, of een hiscore haalt, en
  325. een medelijden-geluid (nou ja...) als je het overnieuw moet doen.
  326.  
  327.  
  328. 29.5.96 (net na pinkpop :)
  329. Scoring even aanpassen: standaard krijg je 500 punten als je een level
  330. finished. Dus totale score is 500 + (par-moves) * 100 (en daarna nog
  331. bonus, 10 punten voor elk streepje).
  332.  
  333. 3.8.96 
  334. Hee, diskfont.library is niet nodig als ook BITMAPOUTPUT (en NPRINT en
  335. LOCATE) uit je source verdwenen is!!! Joepie! Wel een probleempje: voor
  336. inconify is reqtools.lib nodig, maar dat vertel ik maar niet ;)))
  337.  
  338. 21.9.96
  339. Hmmm, iconify crashte als reqtools.library niet aanwezig was. Nu zit er
  340. een check in (mbv. IsReqtoolsActive) zodat dit nu niet meer gebeurd !
  341.  
  342. Hee, het werkt nu ook onder 1.3...joepie!